package cn.wen.yaling.xo.service;

import cn.wen.yaling.commons.utils.ResultEntity;
import cn.wen.yaling.commons.vo.ArticleListVO;
import cn.wen.yaling.commons.vo.TypeAddVO;
import cn.wen.yaling.commons.vo.TypeUpdateVO;
import cn.wen.yaling.commons.vo.TypeVO;
import com.baomidou.mybatisplus.extension.service.IService;
import cn.wen.yaling.commons.utils.PageUtils;
import cn.wen.yaling.commons.entity.TypeEntity;

import java.util.List;
import java.util.Map;

/**
 * 
 *
 * @author FY
 * @email 932043654@qq.com
 * @date 2022-08-13 02:07:37
 */
public interface TypeService extends IService<TypeEntity> {

    PageUtils queryPage(Map<String, Object> params);

    /**
     * 获取全部激活的分类列表
     * @return
     */
    List<TypeVO> getTypeAllList();

    /**
     * 通过分类Id获取分类下所有文章
     * @param typeId
     * @return
     */
    List<ArticleListVO> getTypeArticleList(Integer typeId);

    /**
     * 获取问答的类型列表
     * @return
     */
    List<TypeEntity> getQuestionType();

    /**
     * 获取分下下的文章
     * @return
     */
    List<Map<String, Object>> getBlogCountByBlogSort();

    /**
     * 获取全部的分类列表
     * @return
     */
    List<TypeEntity> getTypeList();

    /**
     * 通过分类名称进行模糊查询
     * @param typeName
     * @return
     */
    List<TypeEntity> searchType(String typeName);

    /**
     *
     * @param type
     * @return
     */
    ResultEntity addType(TypeAddVO type);

    /**
     * 批量删除
     * @param typeIds
     * @return
     */
    ResultEntity deleteTypeByIds(Integer[] typeIds);

    /**
     * 通过类别ID 来修改类别信息
     * @param type
     * @return
     */
    ResultEntity updateTypeById(TypeUpdateVO type);

    /**
     * 修改类别的状态
     * @param typeId
     * @param status
     * @return
     */
    ResultEntity updateTypeStatusById(Integer typeId, Integer status);

    /**
     * 获取图片分类
     * @return
     */
    ResultEntity getImageTypeListBySort();

}

